1. יש אתר פרסום עם מאגר של פרסומות ששמורות במערך. בכל פעם כשיש דף אינטרנט צריך לשים בו חלק מהפרסומות ואז בדף הבא צריך לשים את כל הפרסומות שלא היו בדף הקודם.
2. 2. בהינתן מערך, נרצה להפוך אותו למספר יחיד במחיר מינימלי באופן הבא:
בכל פעם נבחר שני מספרים a, b מהמערך, נוציא אותם מהמערך, ואת הסכום שלהם נוסיף לסוף המערך. הסכום של הפעולה הזו תהיה a+b.
לכל פרסומות במערך יש ביט: אם הוא 1 הפרסומת מופיע עכשיו, אם הוא 0 היא לא.
רצף הביטים הזה יוצר מספר בבסיס עשרוני (על פי הסדר של הפרסומות במערך). בהינתן המספר הזה, נרצה לדעת איזה לדעת איזה פרסומות צריך להדליק בפעם הבאה (ולהחזיר את זה כמספר בבסיס עשרוני).
בתכלס: לקחת את המספר, להפוך אותו לבסיס 2, להוריד אפסים מובילים, להפוך את הביטים ולהחזיר לבסיס 10 (רק יותר יעיל).
תשובות
הוסף תשובה
|
לצפיה בתשובות
נובמבר 2023
1. לחפש את המספר הכי נמוך, שעדיין מעל המספר שלנו, והוא חזקה של 2, להוריד את המספר שקיבלנו, להוריד 1 ולהחזיר את התשובה (למשל 29 -> המספר הכי קרוב 32 -> נחזיר: 32-29-12).
דוגמה: [3,4,6,1,8,9]->a=1,b=8->[3,4,9,9] המחיר של הפעולה הזו: 9.
2. כל פעם לקחת את שני המספרים המינימליים, ולחבר אותם (כל פעם מיינתי את המערך מחדש).